﻿#pragma once
//#include <Windows.h>
#include "Libraries.h"
#include "CContent.h"
#include "CGraphic.h"
#include "CKeyboard.h"
#include "CMouse.h"
#include "CAnimal.h"
#include "CEgg.h"
#include "CRo.h"

#define SCREEN_WIDTH	800
#define SCREEN_HEIGHT	600
#define APP_TITLE		"Game Hung Trung"

using namespace std;

class CGame {
private:
	// hInstance của chương trình
	HINSTANCE hInstance;
	// hwnd của cửa sổ
	HWND hWnd;
	// kích thước cửa sổ
	int width;
	int height;
	// tên cửa sổ
	char windowName[256];
	// thử tục xử lý cửa sổ
	static LRESULT CALLBACK WndProc(HWND hWnd,UINT msg,WPARAM wParam,LPARAM lParam);
	//Khai báo đối tượng graphic
	CGraphic *graphic;
	//Khai báo đối tượng Content(Dùng để load dữ liệu)
	CContent *content;
	//Khai báo đối tượng Keyboard
	CKeyboard *keyboard;
	// trạng thái chuyển động của chuột
	bool mouseSate;
	// khai báo đối tượng mouse
	CMouse *mouse;
	// tạo một mảng động vật
	list<CAnimal*> lstAnimal;
	// tạo một mảng trứng
	list<CEgg*> lstEgg;
	// tạo rổ để hứng trứng
	CRo *ro;
	CEgg *egg;
public:
	// contructor
	CGame(HINSTANCE hInstance,int w,int h,char *name);
	// decontructor
	~CGame(void);
	// hàm này dùng để thiết đặt các giá trị cho cửa sổ
	bool InitWindow();
	// hàm này dùng cho việc load data cho CGame
	void InitData();
	// hàm này dùng để Update CGame sau một khoảng CGameTime
	void Update(float gameTime);
	// dùng để vẽ các đối tượng của CGame lên màn hình
	void Render();
	// hàm dùng để giải phóng vùng nhớ
	void Release();
};
